# models/sys_table_mapping.py
from sqlalchemy import Column, String, Date, DateTime, Boolean, Integer
from src.core.ormdb import Base
from src.core import str_utils as strU


# 定义表匹配模型
class SysTableMapping(Base):
    __tablename__ = 'sys_table_mapping'  # 表名
    __table_args__ = {'comment': '表匹配'}  # 表注释

    id = Column(String(36), primary_key=True, default=lambda: strU.generate_id(), comment="唯一标识ID")
    api_id = Column(String(36), nullable=True, comment='API主键')  # API主键
    mapping_code = Column(String(36), nullable=True, comment='匹配类型')  # 匹配类型
    mapping_name = Column(String(64), nullable=True, comment='匹配名称')  # 匹配名称
    mapping_description = Column(String(255), nullable=True, comment='匹配说明')  # 匹配说明
    table_name = Column(String(255), nullable=True, comment='对应表名')  # 对应表名
    deletion_mark = Column(Integer, default=0, comment='删除标志，0 表示未删除，1 表示已删除')  # 删除标志
    deletion_reason = Column(String(255), nullable=True, comment='删除原因')  # 删除原因
    deletion_date = Column(DateTime, nullable=True, comment='删除日期')  # 删除日期
    deletion_by = Column(String(255), nullable=True, comment='删除者')  # 删除者
    create_date = Column(DateTime, default=lambda: strU.now(), comment='创建日期')  # 创建日期
    creator_by = Column(String(255), nullable=True, comment='创建者')  # 创建者
    last_updated_date = Column(DateTime, nullable=True, comment='最后更新时间')  # 最后更新时间
    last_updated_by = Column(String(255), nullable=True, comment='最后更新者')  # 最后更新者
